#include "init.h"
#include "uart.h"
#include "string.h"  //声明strcmp字符串操作函数
#include "cmd.h"
#include "interrupt.h"

#define BUF_LEN			100
static u8 buf[BUF_LEN];		//分配内存暂存从上位机发送来的字符串数据
static cmd_t *pcmd;				//暂存匹配成功的命令结构体首地址

int main(void) {
	//初始化硬件
	DEVICE_Init();
	
	//中断优先级分组 分2组
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
	
	//主程序循环给上位机发送字符串
	while(1){
		//如果下位机将上位机发送的字符串接收完毕,接下来开始解析命令 
		if(UART_Send_Flag){
			UART_Puts("Receive command is:");
			UART_Puts(UART_RxBuff);
			UART_Puts("\n");
			//根据上位机发送的命令进行匹配
			pcmd = find_cmd((char *)UART_RxBuff);
			if(pcmd != 0){
				pcmd->callback();//匹配成功调用执行函数
			}else{
				UART_Puts("invalid command");
			}
			//重新等待下一个目录的到来 
			UART_Send_Flag = 0;
		}
	}
}



